const util = require("../../utils/util");

// pages/caidan/caidan.js
const app = getApp()
Page({

    /**
     * 页面的初始数据
     */
    data: {
        showPage: false, //控制显示页面,数据加载之后再显示页面
        caiDetailInfo: [], //菜单数据
        notice: '', //首页顶部提示信息
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {
        this.setData({
            showPage: false
        })
        const that = this;

        /**
         * 顶部通知
         */
        that.getNotice();

        /**
         * 判断 缓存openid 是否存在
         * 不存在, 说明之前没有登陆过,是第一次登陆, 此时清除所有状态.
         * 存在,分为2种情况,通过 wx.checkSession 来判断
         * 第一种情况, 没有过期, 则直接赋值使用. 再查看是否绑定,1=已经绑定,其他为未绑定
         * 第二种情况, 已经过期, 此时清除所有状态.
         */
        if (wx.getStorageSync('openid')) {
            wx.checkSession({
                success: (res) => {
                    console.log("登录");
                    //session_key 未过期，并且在本生命周期一直有效, 把之前的缓存赋值给2个全局变量
                    app.globalData.openid = wx.getStorageSync('openid');
                    app.globalData.userInfo = wx.getStorageSync('userInfo');

                    if (wx.getStorageSync('bindflag') == 1) {
                        //已经绑定过后台
                        that.getCaidan();
                    } else {
                        //未绑定后台
                        that.getCaidan();
                    }
                    // 获取到 openid,做后续操作.
                },
                fail: (res) => {
                    console.log("登录失败");
                    // session_key 已经失效，需要重新执行登录流程, 清除缓存和全局信息
                    try {
                        // wx.removeStorageSync('openid');
                        // wx.removeStorageSync('userInfo');
                        // wx.removeStorageSync('bindflag');
                        // wx.removeStorageSync('wxuser');

                        //登录之前清楚所有缓存
                        wx.clearStorageSync();

                        app.globalData.openid = '';
                        app.globalData.userInfo = null;

                        // 没有获取到,做后续操作
                        that.getCaidan();
                    } catch (e) {
                        console.log("清除缓存失败!");
                    }

                },
            })
        } else {
            console.log("没有登录");
            //缓存不存在,清除下所有状态.
            try {
                // wx.removeStorageSync('openid');
                // wx.removeStorageSync('userInfo');
                // wx.removeStorageSync('bindflag');
                // wx.removeStorageSync('wxuser');

                //登录之前清楚所有缓存
                wx.clearStorageSync();

                app.globalData.openid = '';
                app.globalData.userInfo = null;

                // 没有获取到,做后续操作
                that.getCaidan();

            } catch (e) {
                console.log("清除缓存失败!");
            }

        }
    },


    /**
     * 获取顶部通知
     */
    getNotice: function () {
        const that = this;
        //处理点餐时间
        //获取截止时间的状态和后台提示信息
        const timeUrl = app.globalData.httpBase + "/api/xcx/getXcxBaseInfo";
        util.newhttp(timeUrl).then(res => {
            const ret = res.data;
            if (ret.code == 1) {
                //获取成功
                let notice = ret.data.notice;
                that.setData({
                    notice: notice
                })
            }
        }).catch(err => {
            console.log(err);
        })
    },

    /**
     * 获取菜单
     */
    getCaidan: function () {
        wx.showLoading({
            title: '数据加载...'
        })

        //获取菜单,日期根据后台来设置
        const url = app.globalData.httpBase + "/api/xcx/getCaidan";
        const that = this;

        const promise_data = {
            openid: app.globalData.openid
        }

        util.newhttp(url, 'POST', promise_data).then(function (res) {
            const ret = res.data;
            
            if (ret.code == 1) {
                //处理数据,把日期改成 日期+星期的形式
                if(ret.data.length > 0){
                    ret.data.forEach(function(item,index,array){
                        // console.log(item);
                        ret.data[index]['newyuyuedate'] = util.processDateNum(item.yuyuedate);
                    })
                }

                //把菜单数据给到页面
                that.setData({
                    caiDetailInfo: ret.data
                });

                //在后台做了一个操作,如果用户没有绑定,或者我们已经删除了他的信息,数组中的 bindflag=0,此时我们删除缓存
                if (ret.data.length > 0) {
                    if (ret.data[0].bindflag == 0) {
                        console.log('未绑定或者已经被删除!');
                        if (wx.getStorageSync('bindflag')) {
                            wx.removeStorageSync('bindflag');
                        }
                        if (wx.getStorageSync('wxuser')) {
                            wx.removeStorageSync('wxuser');
                        }

                    } else if (ret.data[0].bindflag == 1) {
                        wx.setStorageSync('bindflag', 1);
                    }
                }
            }

            //关闭加载弹窗
            wx.hideLoading();
            that.setData({
                showPage: true
            });

        }).catch(function (res) {

        })
    },

    /**
     * 点击点餐
     */
    clickFan: function (event) {
        const that = this;
        if (wx.getStorageSync('bindflag') != 1) {
            //绑定之后才能点餐
            util.openErrorToast('请先绑定账号');
            return;
        }

        wx.showLoading({
            title: '点餐中...'
        })

        // 当前点击项目,之前swtich的状态,点击的是中餐还是完成
        let index = event.currentTarget.dataset.id; // 当前数组的第几项,从0开始
        let flag = event.currentTarget.dataset.flag; //开始的状态
        let zhongwan = event.currentTarget.dataset.zhongwan; // zhong=点击中餐,wan=点击晚餐
        let yuyuedate = event.currentTarget.dataset.yuyuedate; //预约日期

        if (flag == 1) {
            flag = 2;
        } else if (flag == 2) {
            flag = 1;
        }

        const url = app.globalData.httpBase + "/api/xcx/setFan";

        let promise_data = {
            yuyuedate: yuyuedate,
            openid: app.globalData.openid,
            zhongwan: zhongwan,
            flag: flag
        };

        util.newhttp(url, 'POST', promise_data).then(function (res) {
            let ret = res.data;
            if (ret.code == 1) {
                let temparr = that.data.caiDetailInfo;
                if (zhongwan == 'zhong') {
                    temparr[index].yuyuezhong = flag;
                } else if (zhongwan == 'wan') {
                    temparr[index].yuyuewan = flag;
                }
                that.setData({
                    caiDetailInfo: temparr
                });

                //关闭加载弹窗
                wx.hideLoading();

            } else {
                util.openErrorToast("请重点!");

                //关闭加载弹窗
                wx.hideLoading();
            }
        }).catch(function (res) {
            console.log(res);
            //关闭加载弹窗
            wx.hideLoading();
        })

    },

    //根据日期,返回 日期加上星期几
    getDayAndWeek: function(date){
        return date + ' ' + util.getWeekDay(date)
    },


    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {},

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {
        console.log("页面上拉触底!");
    },

})